/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hatapps.pollafutbolera.facade.impl;



import com.flowumi.exceptions.ClavesNoConcuerdanException;
import com.flowumi.exceptions.UsuarioNoConectadoException;
import com.flowumi.exceptions.UsuarioNoExisteException;
import com.hatapps.pollafutbolera.entity.Usuario;
import com.hatapps.pollafutbolera.entityFacade.UsuarioFacadeLocal;
import com.hatapps.pollafutbolera.facade.SessionFacade;
import com.hatapps.util.EncryptUtil;
import java.security.NoSuchAlgorithmException;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author ideacentre
 */
@Stateless
public class SessionFacadeImpl implements SessionFacade{

    @EJB
    UsuarioFacadeLocal usuariosFacadeLocal;
    
    @Override
    public Usuario iniciarSession(Usuario usuario) throws ClavesNoConcuerdanException, UsuarioNoExisteException, UsuarioNoConectadoException {
        try {
            Usuario usuarioConectado = usuariosFacadeLocal.getUsuariobyNombreusuario(usuario.getNombreUsuario());
            if(usuarioConectado == null){
                throw new UsuarioNoExisteException();
            }
            if(!EncryptUtil.comparePassword(usuario.getContrasena(), usuarioConectado.getContrasena())){
                throw new ClavesNoConcuerdanException();
            }
            return usuarioConectado;
        } catch (NoSuchAlgorithmException ex) {
           throw new UsuarioNoConectadoException();
        }
    }

}
